package top.z.orm.core.osql;

import java.util.List;
import java.util.Map;

/**
 * 使用Map而非具体实体的数据库操作接口,默认不处理null和空字符串(因要与Suid,SuidRich风格兼容)
 */
public interface MapSuid {

    /**
     * 使用MapSql查询数据
     *
     * @param mapSql MapSql instance
     * @return 结果list
     */
    List<String[]> selectString(MapSql mapSql);

    /**
     * 使用MapSql查询数据
     *
     * @param mapSql MapSql instance
     * @return Json格式的多行记录
     */
    String selectJson(MapSql mapSql);

    /**
     * 使用MapSql查询数据
     *
     * @param mapSql MapSql instance
     * @return 结果list
     */
    List<Map<String, Object>> select(MapSql mapSql);

    /**
     * 使用MapSql查询数据
     *
     * @param mapSql MapSql instance
     * @return 包装在一个Map中的一行数据
     */
    Map<String, Object> selectOne(MapSql mapSql);

    /**
     * 使用MapSql查询数据
     *
     * @param mapSql MapSql instance
     * @return 成功删除的记录数
     */
    Integer delete(MapSql mapSql);

}